package com.example.kaogong.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.kaogong.common.utils.RespBean;
import com.example.kaogong.sys.pojo.Notice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.kaogong.sys.pojo.dto.NoticeDto;
import com.example.kaogong.sys.pojo.vo.NoticeDetailVo;
import com.example.kaogong.sys.pojo.vo.NoticeVo;

/**
 * <p>
 * 公告 服务类
 * </p>
 *
 * @author    
 * @since 2022-03-26
 */
public interface INoticeService extends IService<Notice> {

    /**
     * 分页获取资讯基本信息
     * @param current
     * @param size
     * @return
     */
    RespBean<Page<NoticeVo>> getAllBasicNotice(Long current, Long size);

    /**
     * 根据资讯编号获取资讯详细信息
     * @param noticeId
     * @return
     */
    RespBean<NoticeDetailVo> getNoticeDetailById(Integer noticeId);

    /**
     * 当前登录教师发布资讯
     * @param noticeDto
     * @param name
     * @return
     */
    RespBean publishNotice(NoticeDto noticeDto, String name);

    /**
     * 分页获取当前登录教师所发布的所有资讯基本信息
     * @param current
     * @param size
     * @param name
     * @return
     */
    RespBean<Page<NoticeVo>> getCurrentTeacherAllNotice(Long current, Long size, String name);

    /**
     * 根据资讯编号删除资讯
     * @param noticeId
     * @return
     */
    RespBean deleteNoticeById(Integer noticeId);

    /**
     * 根据资讯编号修改资讯信息
     * @param noticeDto
     * @param noticeId
     * @return
     */
    RespBean updateNoticeById(NoticeDto noticeDto, Integer noticeId);
}
